package com.nidu.demo.menu.dto;

import com.nidu.demo.base.BaseCO;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import lombok.EqualsAndHashCode;

/**
 * 菜单客户端对象
 *
 * @author auto
 */
@Data
@Schema(description = "菜单客户端对象")
@EqualsAndHashCode(callSuper = true)
public class MenuCO extends BaseCO {

    /**
     * 主键ID
     */
    @Schema(description = "主键ID", example = "1")
    private Long id;

    /**
     * 菜单名称
     */
    @Schema(description = "菜单名称", example = "系统管理")
    private String menuName;

    /**
     * 菜单权限标识
     */
    @Schema(description = "菜单权限标识", example = "system:manage")
    private String permission;

    /**
     * 菜单类型(1:目录,2:菜单,3:按钮)
     */
    @Schema(description = "菜单类型(1:目录,2:菜单,3:按钮)", example = "1")
    private Integer menuType;

    /**
     * 父菜单ID
     */
    @Schema(description = "父菜单ID", example = "0")
    private Long parentId;

    /**
     * 图标
     */
    @Schema(description = "图标", example = "carbon:bookmark-add")
    private String icon;

    /**
     * 图标
     */
    @Schema(description = "类型", example = "1")
    private Integer iconType;

    /**
     * 路由路径
     */
    @Schema(description = "路由路径", example = "tenant")
    private String routePath;

    /**
     * 路由名称
     */
    @Schema(description = "路由名称", example = "/system/tenant/index")
    private String routeName;

    /**
     * 组件路径
     */
    @Schema(description = "组件路径", example = "view.home")
    private String component;

    /**
     * 国际化key
     */
    @Schema(description = "国际化key", example = "page.manager.user.routeName")
    private String i18nKey;

    /**
     * 重定向路径
     */
    @Schema(description = "重定向路径", example = "system/user/index")
    private String redirect;

    /**
     * 外部路径
     */
    @Schema(description = "外部路径", example = "https://baidu.com")
    private String href;

    @Schema(description = "是否可见", example = "false")
    private Boolean visible;

    @Schema(description = "是否缓存", example = "false")
    private Boolean isCache;

    @Schema(description = "排序号", example = "0")
    private Integer sortOrder;

    @Schema(description = "状态(0:禁用,1:启用)", example = "1")
    private Integer status;

} 